package com.epoch.zuul.auth.dao;

import com.epoch.zuul.auth.role.Auth;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


/**
 *
 * @author Seven
 * @date 2021/12/4
 */
@Mapper
@Repository
public interface AuthRoleDao {
    /**
     * 根据roleId获取所有auth
     * @param roleId
     * @return
     */
    List<Auth> getAllauthByRoleId(@Param("roleId") Integer roleId);

    /**
     * 根据角色名称 获取一级权限
     * @Param roleId
     * @return
     */
    List<Auth> getFirstAuths(@Param("roleId") Integer roleId);

    /**
     * 根据给出的一级权限的id以及roleId获取二级权限
     * @param pid
     * @return
     */
    List<Auth> getAuthByPid(@Param("pid") Integer pid, @Param("roleId") Integer roleId);

    /**
     * 根据给出的二级权限的id以及roleId获取三级权限
     * @param roleId
     * @param pid
     * @return
     */
    List<Auth> getThirdAuthByAuthIdAndByRoleId(@Param("roleId") Integer roleId, @Param("pid") Integer pid);

    /**
     * 删除角色的所有权限
     * @param roleId
     * @return
     */
    int deleteAllAuthByRoleId(@Param("roleId") Integer roleId);

    /**
     * 添加角色权限
     * @param authId
     * @param roleId
     * @return
     */
    int addAuth(@Param("authId") Integer authId, @Param("roleId") Integer roleId);

    /**
     * 删除角色权限
     * @param authId
     * @param roleId
     * @return
     */
    int deleteAuthByRoleIdAuthId(@Param("authId") Integer authId, @Param("roleId") Integer roleId);

}
